package com.newtouch.bxzs.common.base.model;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 课程实体类
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/2/22 13:49</td>
 * <td>dingqianbin</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author dingqianbin
 * @version 1.0.0
 * @since 1.0.0
 */
@Data
@TableName(value = "ASSISTANT_COURSE")
@ApiModel(value = "课程信息实体类")
public class Course implements Serializable {

    private static final long serialVersionUID = 7148125414258866143L;

    /** 主键课程ID */
    @TableId(value = "COURSE_ID", type = IdType.ASSIGN_UUID)
    private String courseId;

    /** 课程标题 */
    @TableField(value = "COURSE_TITLE")
    private String courseTitle;

    /** 课程类型 */
    @TableField(value = "COURSE_TYPE")
    private String courseType;

    /** 课程简介 */
    @TableField(value = "COURSE_INTRODUCTION")
    private String courseIntroduction;

    /** 发布时间 */
    @TableField(value = "PUBLISH_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "CST")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    /** 撤销时间 */
    @TableField(value = "REVOKE_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "CST")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date revokeTime;

    /** 发布状态：1-未发布；2-已发布；5-已撤销； */
    @TableField(value = "PUBLISH_STATUS")
    private String publishStatus;

    /** 创建用户ID */
    @TableField(value = "CREATE_USER_ID")
    private String createUserId;

    /** 创建时间 */
    @TableField(value = "CREATE_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "CST")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 修改用户ID */
    @TableField(value = "UPDATE_USER_ID")
    private String updateUserId;

    /** 修改时间 */
    @TableField(value = "UPDATE_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "CST")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 删除状态 */
    @TableField(value = "IS_DELETE")
    @TableLogic(value = "0", delval = "1")
    private Boolean deleteFlag = false;

    /** 备注 */
    @TableField(value = "MEMO")
    private String memo;
}
